// #include <bits/stdc++.h>
// using namespace std;
// #define int long long
// map<int, int> mp1, mp2;
// vector<int> pre1;
// int up[1000010];

// void solve() {
//     int n;
//     cin >> n;
//     vector<int> memo(n + 1);
//     auto dfs = [&](auto&& dfs, int u)->int {
//         int res = u * u;
//         if(memo[u]) return 0;
//         memo[u] = 1;
//         if(u == 1){
//             return 1;
//         }
//         int t = upper_bound(pre1.begin(), pre1.end(), u) - pre1.begin() - 1;
//         if(mp1.count(u)) {
//             res += dfs(dfs, u - t);
//         }else if(mp2.count(u)){
//             res += dfs(dfs, u - t - 1);
//         } else{
//             res += dfs(dfs, u - t) + dfs(dfs, u - t - 1);
//         }
//         return res;
//     };
//     cout << dfs(dfs, n) << '\n';
// }

// signed main() {
//     ios::sync_with_stdio(false), cin.tie(0);
//     int cnt = 0;
//     for(int i = 1; i < 1000010; i += cnt) {
//         mp1[i]++;
//         pre1.push_back(i);
//         cnt++;
//     }

//     cnt = 1;
//     for(int i = 1; i < 1000010; i += cnt) {
//         mp2[i]++;
//         cnt++;
//     }
//     cnt  = 0;
//     for(int i = 1; i < 1000010; i++) {
        
//     }
//     int t;
//     cin >> t;
//     while(t--) solve();
//     return 0;
// }

#include <bits/stdc++.h>

using namespace std;

long long ans[2000007];
long long a[1500][1500] = {}, curr = 1;

void solve() {
	int n;
	cin >> n;
	cout << ans[n] << '\n';
}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);

	for (int i = 1; i < 1500; i++) {
		for (int j = i - 1; j >= 1; j--) {
			a[j][i - j] = a[j - 1][i - j] + a[j][i - j - 1] - a[j - 1][i - j - 1] + curr * curr;
			ans[curr] = a[j][i - j];
			curr++;
		}
	}
	
	int t; cin >> t; while(t--) {solve();}
}